package com.ewanghuiju.app.model.http;

import com.ewanghuiju.app.model.bean.local.HomeLimitedSeckillLocalTop;
import com.ewanghuiju.app.model.bean.local.MessageCommonBean;
import com.ewanghuiju.app.model.bean.local.SearchHotBean;
import com.ewanghuiju.app.model.bean.local.VipEquityBean;
import com.ewanghuiju.app.model.bean.request.AddressRequestBean;
import com.ewanghuiju.app.model.bean.request.LoginRequestBean;
import com.ewanghuiju.app.model.bean.request.PhoneRegistbindRequestBean;
import com.ewanghuiju.app.model.bean.request.PintuanSearchRequestBean;
import com.ewanghuiju.app.model.bean.response.AddressListResponBean;
import com.ewanghuiju.app.model.bean.response.ArticleArticleResponBean;
import com.ewanghuiju.app.model.bean.response.BillListResponBean;
import com.ewanghuiju.app.model.bean.response.BindUserinfoResponBean;
import com.ewanghuiju.app.model.bean.response.BuyDailiInfoBean;
import com.ewanghuiju.app.model.bean.response.EarningsInfoBean;
import com.ewanghuiju.app.model.bean.response.HistorySearchResponBean;
import com.ewanghuiju.app.model.bean.response.InviteFriendResponBean;
import com.ewanghuiju.app.model.bean.response.InviterInfo;
import com.ewanghuiju.app.model.bean.response.LoginResponBean;
import com.ewanghuiju.app.model.bean.response.MailShopResponBean;
import com.ewanghuiju.app.model.bean.response.OrderStatusResponBean;
import com.ewanghuiju.app.model.bean.response.PaySignResponBean;
import com.ewanghuiju.app.model.bean.response.PhoneCodeResponseBean;
import com.ewanghuiju.app.model.bean.response.PhoneRegistbindResponBean;
import com.ewanghuiju.app.model.bean.response.PingjiaListResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanClassifyResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanGoodsSpecsResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanHeadListResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanOnlineListResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanOrderDetailsResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanOrderListResponBean;
import com.ewanghuiju.app.model.bean.response.PintuanShopListResponBean;
import com.ewanghuiju.app.model.bean.response.RedBeanDetailsResponBean;
import com.ewanghuiju.app.model.bean.response.RedEnvelopesDetailsResponBean;
import com.ewanghuiju.app.model.bean.response.RuleBean;
import com.ewanghuiju.app.model.bean.response.ShareResponBean;
import com.ewanghuiju.app.model.bean.response.TeamInfoResponBean;
import com.ewanghuiju.app.model.bean.response.UserInfoResponBean;
import com.ewanghuiju.app.model.bean.response.VersionResponBean;
import com.ewanghuiju.app.model.bean.response.VipUpOrderRecordResponBean;
import com.ewanghuiju.app.model.bean.response.WaterDetailsResponBean;
import com.ewanghuiju.app.model.bean.response.WaterGoodsClassifyBean;
import com.ewanghuiju.app.model.bean.response.WaterOrderListResponBean;
import com.ewanghuiju.app.model.bean.response.WaterShopResponBean;
import com.ewanghuiju.app.model.bean.response.ZfbInfoBean;
import com.ewanghuiju.app.model.http.request.BaseRequest;
import com.ewanghuiju.app.model.http.response.BaseResponse;
import com.ewanghuiju.app.model.http.response.MyHttpResponse;
import com.ewanghuiju.app.test.bean.PintuanClassifyRightBean;

import java.util.List;
import java.util.Map;

import io.reactivex.Flowable;
import okhttp3.RequestBody;

/**
 * @author sj  qq:751943509
 * @class describe
 * @time 2020/2/10
 */
public interface HttpHelper {

    Flowable<MyHttpResponse<LoginResponBean>> phoneLogin(LoginRequestBean loginRequestBean);//手机号登录

    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> phoneRegist(PhoneRegistbindRequestBean phoneRegistbindRequestBean);//手机号注册

    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> userEditpwd(PhoneRegistbindRequestBean phoneRegistbindRequestBean);//修改密码

    Flowable<MyHttpResponse<PhoneRegistbindResponBean>> phoneBind(PhoneRegistbindRequestBean phoneRegistbindRequestBean);//手机号绑定

    Flowable<MyHttpResponse<UserInfoResponBean>> getUserInfo();

    Flowable<MyHttpResponse<PhoneCodeResponseBean>> getCode(String mobile); //获取验证码

    Flowable<MyHttpResponse<PhoneCodeResponseBean>> getCodeWithReg(String mobile, String type);

    Flowable<MyHttpResponse<InviterInfo>> getInviterinfo(BaseRequest baseRequest);

    Flowable<MyHttpResponse> addCode(String code);

    Flowable<MyHttpResponse<BaseResponse>> taokeGetlbimg(String type);

    Flowable<MyHttpResponse<List<ArticleArticleResponBean>>> articleArticlelist();

    Flowable<MyHttpResponse<HomeLimitedSeckillLocalTop>> getTbqg();

    Flowable<MyHttpResponse<List<MailShopResponBean>>> getTbyoulike(int page);

    Flowable<MyHttpResponse<List<PintuanClassifyResponBean>>> getPticatesAll();

    Flowable<MyHttpResponse<List<PintuanClassifyResponBean>>> getPticateslist();

    Flowable<MyHttpResponse<PintuanClassifyRightBean>> getPticatesToo(BaseRequest baseRequest);

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPtihotGoodsList(int page, String spe_price, String sales, String people_number);

    Flowable<MyHttpResponse<AddressListResponBean>> addPtiaddress(AddressRequestBean addressRequestBean);

    Flowable<MyHttpResponse<AddressListResponBean>> addPtiaddressEdit(AddressRequestBean addressRequestBean);

    Flowable<MyHttpResponse<List<MailShopResponBean>>> tbGoodsgao(int page);

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPtisearch(PintuanSearchRequestBean bean);

    Flowable<MyHttpResponse<List<AddressListResponBean>>> getPtiaddresslist();

    Flowable<MyHttpResponse<PintuanShopListResponBean>> getPintuansearch(int page, String name, String spe_price, String sales, String people_number);

    Flowable<MyHttpResponse<List<PintuanGoodsSpecsResponBean>>> getPtigoodsSpecs(String goodsid);

    Flowable<MyHttpResponse<BaseResponse>> setPaypwd(String paypwd, String paypwd1);

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPticateGoodsList(int page, String id, String spe_price, String sales, String people_number);

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPticateOneGoodsList(int page, String id, String spe_price, String sales, String people_number);

    Flowable<MyHttpResponse<BaseResponse>> deletePtngoodsList(int id);//地址信息删除

    Flowable<MyHttpResponse<BaseResponse>> ptigetIdentity(String goods_id);

    Flowable<MyHttpResponse<AddressListResponBean>> pticonfirmationOrder(String goods_id, String specs_id, String group_id);

    Flowable<MyHttpResponse<BaseResponse>> ptistarGroup(String goods_id, String address_id, String specs_id, String actual_payment, String pay_password, String is_goods,String order_remark);

    Flowable<MyHttpResponse<PintuanOrderDetailsResponBean>> ptiorderInfo(String order_id);

    Flowable<MyHttpResponse<List<PintuanOrderListResponBean>>> getPtiorderList(int page, int order_type,String type);

    Flowable<MyHttpResponse<List<PintuanOnlineListResponBean>>> getPtigroupList(String goods_id);//单个商品正在拼团中的团队列表

    Flowable<MyHttpResponse<BaseResponse>> ptijoinGroup(String group_id, String address_id, String specs_id, String pay_password,String order_remark);//加入拼团

    Flowable<MyHttpResponse<PaySignResponBean>> userpay(String payType, String pay_price);//充值

    Flowable<MyHttpResponse<BaseResponse>> ptitakeDelivery(String order_id);//确认收货

    Flowable<MyHttpResponse<ShareResponBean>> ptiptGoodsShare(String goods_id, String group_id);//商品分享

    Flowable<MyHttpResponse<BaseResponse>> ptieValuation(String order_id, String content, String image, String stars);//去评价

    Flowable<MyHttpResponse<BaseResponse>> uploadFlie(Map<String, RequestBody> files);

    Flowable<MyHttpResponse<List<HistorySearchResponBean>>> ptihistory();//历史搜索

    Flowable<MyHttpResponse<BaseResponse>> ptihistoryDelete(String type, String name);//删除搜索历史记录

    Flowable<MyHttpResponse<List<PingjiaListResponBean>>> ptievaluationList(int page, String type, String goods_id);//评价列表

    Flowable<MyHttpResponse<PintuanShopListResponBean>> getptigoodsInfo(String goodsid);//拼团商品详情

    Flowable<MyHttpResponse<List<SearchHotBean>>> ptihotWords();//热门搜索

    Flowable<MyHttpResponse<VipEquityBean>> getVipEquityBeanInfo();//获取会员权益信息

    Flowable<MyHttpResponse<InviteFriendResponBean>> getQrcodeInfo();//获取邀请信息

    Flowable<MyHttpResponse<BaseResponse>> getOsstoken(String sessionname);//获取oss token

    Flowable<MyHttpResponse<PintuanHeadListResponBean>> getPtigroupUserImage(String group_id);//拼团中的用户头像

    Flowable<MyHttpResponse<LoginResponBean>> wxUserLogin(String unionid, String mobile);//登录（验证是否绑定过推荐人）

    Flowable<MyHttpResponse<BaseResponse>> getPtigetGroupIntegral(String integral);//获取团长身份/转化开团额度

    Flowable<MyHttpResponse<LoginResponBean>> userMobileparentid(String mobile, String number);//绑定邀请码

    Flowable<MyHttpResponse<List<BindUserinfoResponBean>>> getUserNum(String unionid, String mobile, String code);//注册获取会员推荐信息

    Flowable<MyHttpResponse<LoginResponBean>> wxUserRegister(String unionid, String mobile, String number, String headimgurl, String nickname);//注册微信

    Flowable<MyHttpResponse<BaseResponse>> getPtigroupIntegralSum(String number);

    Flowable<MyHttpResponse<BillListResponBean>> getWalletList(int page, String price_type, String time_type, String status);// 钱包记录

    Flowable<MyHttpResponse<BaseResponse>> bindUserjg(String jpush_id);//绑定极光id

    Flowable<MyHttpResponse<BaseResponse>> updateAlipay(String uname, String alipay, String mobile, String code); //绑定支付宝

    Flowable<MyHttpResponse<ZfbInfoBean>> getAlipayinfo(); //获取支付宝信息

    Flowable<MyHttpResponse<BaseResponse>> withdraw(String price, String type, String realname, String alipay, String password);//提现

    Flowable<MyHttpResponse<EarningsInfoBean>> getPtiprofitCenter(String type); //收益中心

    Flowable<MyHttpResponse<BuyDailiInfoBean>> getPtibuyDailiInfo();  //购买区域代理信息返回

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPtiGoodsList(int page); //拼团列表

    Flowable<MyHttpResponse<BaseResponse>> ptibuyDaili(String area_id);//购买区域代理支付

    Flowable<MyHttpResponse<List<VipUpOrderRecordResponBean>>> ptibuyDailiRecord();//购买区域代理记录

    Flowable<MyHttpResponse<TeamInfoResponBean>> getMyfans(int page, String search, int type);//团队订单

    Flowable<MyHttpResponse<List<WaterShopResponBean>>> getJfgoods(int page);//获取水滴商品

    Flowable<MyHttpResponse<WaterShopResponBean>> getJfgoodsinfo(String id);//获取单个水滴商品详情

    Flowable<MyHttpResponse<BaseResponse>> integralConversion(String goods_id, String goods_num, String address_id, String pay_password,String order_remark);//积分购买

    Flowable<MyHttpResponse<List<WaterOrderListResponBean>>> getIntegralconversionlist(int page); //订单列表

    Flowable<MyHttpResponse<WaterOrderListResponBean>> getIntegralconversioninfo(String id); //订单详情

    Flowable<MyHttpResponse<RedBeanDetailsResponBean>> getPtiredBeanInfo(int page);//分红豆信息和明细

    Flowable<MyHttpResponse<BaseResponse>> ptiredeanProportion(String number); //根据分红豆转化股数

    Flowable<MyHttpResponse<BaseResponse>> ptistocksInfo(String number, String stocks); //用户股权转化分红信息返回

    Flowable<MyHttpResponse<WaterDetailsResponBean>> ptistocksInfo();//滴转增用户信息返回

    Flowable<MyHttpResponse<List<RedBeanDetailsResponBean>>> getPtiintegralinfo(int page);//水滴明细

    Flowable<MyHttpResponse<BaseResponse>> ptitransferIntegral(String number, String mobile);//点击转增水滴

    Flowable<MyHttpResponse<BaseResponse>> ptiopinion(String content, String platform_type, String version); //意见反馈

    Flowable<MyHttpResponse<List<MessageCommonBean>>> getPtitutorialList(int page); //新手教程列表

    Flowable<MyHttpResponse<TeamInfoResponBean>> getMyfansinfo(int page, String search, String id);//根据id获取粉丝

    Flowable<MyHttpResponse<BaseResponse>> settingWxCard(String wx_card);//设置微信号

    Flowable<MyHttpResponse<BaseResponse>> userinfo_edit(String type, String avatar, String nickname);//修改用户信息

    Flowable<MyHttpResponse<BaseResponse>> mobileEdit(String old_mobile, String pwd, String mobile, String code);//修改手机号

    Flowable<MyHttpResponse<BaseResponse>> mobileWx(String unionid, String headimgurl, String nickname);//绑定微信

    Flowable<MyHttpResponse<BaseResponse>> wxDel(String wx);  //解绑微信

    Flowable<MyHttpResponse<RuleBean>> getPtiguize(String type);  //获取规则

    Flowable<MyHttpResponse<VersionResponBean>> getUpgradeInfo(String version, String type);  //获取升级信息

    Flowable<MyHttpResponse<List<PintuanShopListResponBean>>> getPtihotGroupList(int page, String spe_price, String sales, String people_number);//拼团中的热门团

    Flowable<MyHttpResponse<BaseResponse>> pticheckGroup(String group_id);  //检测团是否能加入该团

    Flowable<MyHttpResponse<BaseResponse>> ptiLucydrawCheck();//领红包次数信息检测

    Flowable<MyHttpResponse<BaseResponse>> ptiLuckydraw();//领红包

    Flowable<MyHttpResponse<RedEnvelopesDetailsResponBean>> ptiLuckydrawList();//领红包列表

    Flowable<MyHttpResponse<BaseResponse>> ptiLuckyDrawoff(); //红包开关

    Flowable<MyHttpResponse<BaseResponse>> earningsWithdraw(String price, String type, String realname, String alipay, String password);//收益提现

    Flowable<MyHttpResponse<List<WaterGoodsClassifyBean>>> getJfgoodscate();//水滴商城分类

    Flowable<MyHttpResponse<List<WaterShopResponBean>>> getJfgoodscate(int page, String goods_cate_id);

    Flowable<MyHttpResponse<BillListResponBean>> getPtiprofitcenterList(
            int page, String type);

    Flowable<MyHttpResponse<OrderStatusResponBean>> getPtiorderStatus();//不同状态订单数量
}

